package com.bo.util;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class BatchRenamefile {
	//输出日志
	 public static volatile boolean isDebug = false;
	 
	 public static void main(String[] args) throws Exception {
	  String root = "D:\\Portal";//文件夹目录
	  List<File> filelist=new ArrayList<File>();
	  readfile(root,filelist);
//	  for(File f:filelist){
//		  System.out.println(f.getPath());
//	  }
	  rename2(filelist);
	 }
	 /**
	  * 批量 重命名 文件名
	  * @param files 文件列表(文件夹或文件)
	  * @param newName 新文件名
	  * @throws Exception 可能的异常
	  */
	 public static void rename1(List<File> files ) throws Exception {
	  if(files == null ){
	   return;
	  }
	  for(int i=0 ; i< files.size() ; i++){
	   if(files.get(i) != null && files.get(i).exists()){
	    File f = files.get(i);
	    
	    int lastIndex = f.getAbsolutePath().lastIndexOf(File.separator);
	    //父目录
	    String path = f.getAbsolutePath().substring(0 , lastIndex+1);
	    if(f.isFile()){
	     //文件，保持后缀名
	     String extensions = f.getName().lastIndexOf(".") >0 ? 
	       ( f.getName().substring(f.getName().lastIndexOf(".")) ) : "";
	     f.renameTo(new File(path+f.getName()+ ".jsp"));
	     System.out.println(f.getPath());
	    }
	   }
	  }
	 }
	 public static void rename2(List<File> files ) throws Exception {
		  if(files == null ){
		   return;
		  }
		  for(int i=0 ; i< files.size() ; i++){
		   if(files.get(i) != null && files.get(i).exists()){
		    File f = files.get(i);
		    
		    int lastIndex = f.getAbsolutePath().lastIndexOf(File.separator);
		    //父目录
		    String path = f.getAbsolutePath().substring(0 , lastIndex+1);
		    if(f.isFile()){
		    	File tempf=new File(path+f.getName().substring(0,f.getName().lastIndexOf(".")));
		     f.renameTo(tempf);
		     System.out.println(tempf.getPath());
		    }
		   }
		  }
		 }
	 
	 /**
      * 读取某个文件夹下的所有文件
      */
     public static boolean readfile(String filepath,List<File> filelist1) throws FileNotFoundException, IOException {
             try {

                     File file = new File(filepath);
                     if (!file.isDirectory()) {
//                             System.out.println("文件");
//                             System.out.println("path=" + file.getPath());
//                             System.out.println("absolutepath=" + file.getAbsolutePath());
//                             System.out.println("name=" + file.getName());
//                    	 filelist1.add(file);
                     } else if (file.isDirectory()) {
//                             System.out.println("文件夹");
                             String[] filelist = file.list();
                             for (int i = 0; i < filelist.length; i++) {
                                     File readfile = new File(filepath + "/" + filelist[i]);
                                     if (!readfile.isDirectory()) {
//                                             System.out.println("path=" + readfile.getPath());
//                                             System.out.println("absolutepath="
//                                                             + readfile.getAbsolutePath());
//                                             System.out.println("name=" + readfile.getName());
                                    	 filelist1.add(readfile);
                                     } else if (readfile.isDirectory()) {
                                             readfile(filepath + "/" + filelist[i],filelist1);
                                     }
                             }
                     }

             } catch (FileNotFoundException e) {
                     System.out.println("readfile()   Exception:" + e.getMessage());
             }
             return true;
     }
}
